﻿using System;

namespace YArchitech.HCLoad.XmlData
{
	public class ConsumedHeatingResult
	{
		public double BaseHeatLoad
		{
			get
			{
				return this.m_dBaseHeatLoad;
			}
			set
			{
				this.m_dBaseHeatLoad = value;
			}
		}

		public double AdditionHeatLoad
		{
			get
			{
				return this.m_dAdditionHeatLoad;
			}
			set
			{
				this.m_dAdditionHeatLoad = value;
			}
		}

		public double GapFilterAirLoad
		{
			get
			{
				return this.m_dGapFilterAirLoad;
			}
			set
			{
				this.m_dGapFilterAirLoad = value;
			}
		}

		public double AirFilterLoad
		{
			get
			{
				return this.m_dAirFilterLoad;
			}
			set
			{
				this.m_dAirFilterLoad = value;
			}
		}

		public double DoorOpenHeatLoad
		{
			get
			{
				return this.m_dDoorOpenHeatLoad;
			}
			set
			{
				this.m_dDoorOpenHeatLoad = value;
			}
		}

		public double InterRoomHeatLoad
		{
			get
			{
				return this.m_dInterRoomHeatLoad;
			}
			set
			{
				this.m_dInterRoomHeatLoad = value;
			}
		}

		public double OtherHeatLoad
		{
			get
			{
				return this.m_dOtherHeatLoad;
			}
			set
			{
				this.m_dOtherHeatLoad = value;
			}
		}

		public double TotalHeatLoad
		{
			get
			{
				return this.m_dTotalHeatLoad;
			}
			set
			{
				this.m_dTotalHeatLoad = value;
			}
		}

		public ConsumedHeatingResult Increase(ConsumedHeatingResult heatload)
		{
			this.m_dBaseHeatLoad += heatload.m_dBaseHeatLoad;
			this.m_dAdditionHeatLoad += heatload.m_dAdditionHeatLoad;
			this.m_dGapFilterAirLoad += heatload.m_dGapFilterAirLoad;
			this.m_dAirFilterLoad += heatload.m_dAirFilterLoad;
			this.m_dDoorOpenHeatLoad += heatload.m_dDoorOpenHeatLoad;
			this.m_dInterRoomHeatLoad += heatload.m_dInterRoomHeatLoad;
			this.m_dOtherHeatLoad += heatload.m_dOtherHeatLoad;
			this.m_dTotalHeatLoad += heatload.m_dTotalHeatLoad;
			return this;
		}

		public ConsumedHeatingResult Decrease(ConsumedHeatingResult heatload)
		{
			this.m_dBaseHeatLoad -= heatload.m_dBaseHeatLoad;
			this.m_dAdditionHeatLoad -= heatload.m_dAdditionHeatLoad;
			this.m_dGapFilterAirLoad -= heatload.m_dGapFilterAirLoad;
			this.m_dAirFilterLoad -= heatload.m_dAirFilterLoad;
			this.m_dDoorOpenHeatLoad -= heatload.m_dDoorOpenHeatLoad;
			this.m_dInterRoomHeatLoad -= heatload.m_dInterRoomHeatLoad;
			this.m_dOtherHeatLoad -= heatload.m_dOtherHeatLoad;
			this.m_dTotalHeatLoad -= heatload.m_dTotalHeatLoad;
			return this;
		}

		public static ConsumedHeatingResult operator +(ConsumedHeatingResult heatload1, ConsumedHeatingResult heatload2)
		{
			new ConsumedHeatingResult();
			heatload1.Increase(heatload2);
			return heatload1;
		}

		public static ConsumedHeatingResult operator -(ConsumedHeatingResult heatload1, ConsumedHeatingResult heatload2)
		{
			new ConsumedHeatingResult();
			heatload1.Decrease(heatload2);
			return heatload1;
		}

		private double m_dBaseHeatLoad;

		private double m_dAdditionHeatLoad;

		private double m_dGapFilterAirLoad;

		private double m_dAirFilterLoad;

		private double m_dDoorOpenHeatLoad;

		private double m_dInterRoomHeatLoad;

		private double m_dOtherHeatLoad;

		private double m_dTotalHeatLoad;
	}
}
